package com.topscomm.file;

import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.StringUtils;

import lombok.Data;

/**
 * 文件相关的参数
 * 
 * @description:
 * @author: donghang
 * @date: 2021年3月15日上午9:17:01
 * @modify:
 */
@Data
public class FileProperties implements InitializingBean {

	/**
	 * 文件签名密码
	 */
	private String hmacFilePassword;
	/**
	 * 文件服务暴露地址
	 */
	private String fileEndpoint;

	private boolean gzip;

	private String token;

	private String allowType;

	private Set<String> typeSet;
	/**
	 * 文件存储根目录
	 */
	private String storePath;
	/**
	 * 播放路径
	 */
	private String playPath;
	/**
	 * 远程浏览http地址
	 */
	private String playRemoteUrl;
	/**
	 * 本地浏览http地址
	 */
	private String playLocalUrl;
	/**
	 * ffmpeg路径
	 */
	private String ffmpegPath;
	/**
	 * ffmpeg分片长度
	 */
	private String ffmpegDuration;
	/**
	 * 切片加密路径
	 */
	private String encPath;
	/**
	 * ftp配置
	 */
	private FtpConfig ftp;
	/**
	 * minio配置
	 */
	private MinioConfig minio;

	@Override
	public void afterPropertiesSet() throws Exception {
		if (StringUtils.hasText(allowType)) {
			typeSet = Arrays.stream(allowType.split(",")).map(type -> {
				return type.toLowerCase();
			}).collect(Collectors.toSet());
		}
	}

}
